#include <stdio.h>

int main(){
    int n;
    scanf("%d",&n);
    int* input=new int[n];
    char* result=new char[2*n];
    int i;
    for(i=0;i<n;i++)
    {
        scanf("%d",&input[n-i-1]);
    }
    int* s1=new int[n];
    int* s2=new int[n];
    i=n;
    int j=0;
    int k=0;
    int l;//操作次数
    int total=2*n;//总操作次数
    int num=1;//当前可出栈的数
    for(l=0;l<total;l++)
    {
        //入第一个栈
        if((i>0)&&(j==0||input[i-1]<s1[j-1]))
        {
            result[l]='a';
            s1[j]=input[i-1];
            j++;
            i--;
        }
        //第一个栈的数出栈
        else if(j>0&&s1[j-1]==num)
        {
            result[l]='b';
            j--;
            num++;
        }
        //入第二个栈
        else if((i>0)&&(k==0||input[i-1]<s2[k-1]))
        {
            result[l]='c';
            s2[k]=input[i-1];
            k++;
            i--;
        }
        //第二个栈的数出栈
        else if(k>0&&s2[k-1]==num)
        {
            result[l]='d';
            k--;
            num++;
        }
        else{
            break;
        }
    }
    if(l==total)
    {
        for(i=0;i<total;i++)
        {
            if(i>0)
            {
                printf(" ");
            }
            printf("%c",result[i]);
        }
        printf("\n");
    }
    else{
        printf("0\n");
    }

    delete input;
    delete s1;
    delete s2;
    delete result;
    return 0;
}